🎖️GitЯра🎖️
Commit 6c06601d5477b478589be3203451dcecaa86e721
Parents : a22bf5e
Author : James Rich <2199651+jamesarich@users.noreply.github.com>
Signature : Signature validation error
Date : 2026-08-11T16:33:23-07:00
Committer : GitHub <noreply@github.com>
Date : 2026-08-11T18:33:23-05:00
fix(build): sign debug builds with a shared checked-in keystore (#6615)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Changes
2 files changed, 10 insertions(+), 2 deletions(-)
Diff
diff --git a/androidApp/build.gradle.kts b/androidApp/build.gradle.kts
index 15fac6a4b2..fafb9c09c9 100644
--- a/androidApp/build.gradle.kts
+++ b/androidApp/build.gradle.kts
@@ -62,6 +62,14 @@ configure<ApplicationExtension> {
}
signingConfigs {
+ // Shared debug key (checked in; debug keys are not secret) so local builds and CI snapshots
+ // stay update-compatible — AGP's default per-machine key makes every snapshot un-sideloadable.
+ getByName("debug") {
+ storeFile = isolated.rootProject.projectDirectory.file("config/debug.keystore").asFile
+ storePassword = "android"
+ keyAlias = "androiddebugkey"
+ keyPassword = "android"
+ }
create("release") {
keyAlias = keystoreProperties["keyAlias"] as String?
keyPassword = keystoreProperties["keyPassword"] as String?
@@ -177,10 +185,10 @@ configure<ApplicationExtension> {
buildTypes {
release {
+ // Unsigned when keystore.properties is absent — a release must never carry the public
+ // debug key. For an installable local release, point keystore.properties at config/debug.keystore.
if (keystoreProperties["storeFile"] != null) {
signingConfig = signingConfigs.named("release").get()
- } else {
- signingConfig = signingConfigs.getByName("debug")
}
isDebuggable = false
}
diff --git a/config/debug.keystore b/config/debug.keystore
new file mode 100644
index 0000000000..1fd0e09a86
Binary files /dev/null and b/config/debug.keystore differ
Served by rngit 1.5.0 - Generated in 0.11s